As known, in a packet-switched communication network, in particular an IP (Internet Protocol) communication network, the transmission of data flows between a source and one or more end users (also referred to clients or hosts) may be unicast (point to point) or multicast (point to multipoint). The multicast transmission technique is used for distributing the same data flow from the source to a group of clients simultaneously and synchronously. This group of clients is typically referred to as multicast distribution group and, within an IP communication network, is identified by an IP multicast address. Typical services using multicast transmission techniques are streaming video and gaming. The data flow distribution is generally performed along a so called “multicast distribution tree” whose root is the data source device (e.g. the server of an information provider) and whose leaves are the end users' devices. Typically, the multicast distribution tree comprises a number of multicast routers, which are configured to route the data flow from the source to the clients. Each client wishing to receive a particular data flow from a given source typically sends a membership request on the network segment to which the client is attached in order to join the multicast distribution group related to that particular data flow.
As known, the IGMP (Internet Group Management Protocol) protocol is a communication protocol used by clients and by their adjacent multicast routers of the multicast distribution tree for establishing multicast group memberships. In particular, a membership report message is sent by a host on the network segment to which the host is attached and it is received by its adjacent multicast router. This report message indicates that the host is interested in joining a multicast distribution group for receiving a given data flow. A leave group message is sent by a host when it decides to leave the multicast distribution group.
The PIM (Protocol Independent Multicast) protocol is a routing protocol used between the multicast routers of the multicast distribution tree to direct the data flow from the source to the clients of a multicast distribution group. In particular, a multicast router that received a IGMP membership report from a host requiring to join a given multicast distribution group, typically sends a PIM join message towards the source of the data flow possibly through intermediate multicast routers, for connecting the intervening multicast routers to the multicast distribution tree. In this way, as known, these multicast routers are able to receive the data flow from the source and forward it towards the joined host. On the contrary, a PIM prune message is typically sent by a multicast router when it leaves a multicast distribution tree.
The quality of the services typically distributed using a multicast transmission technique (e.g. streaming video) is critically dependent of the percentage of packets that are lost or damaged during the multicast transmission from the source to the clients. Moreover, typically, multicast transmissions do not implement any mechanism for retransmission of lost or damaged packets. In view of the above, any congestion event occurring at a multicast router may cause a packet loss which may heavily and irreversibly degrade the quality of the service delivered to the clients of a multicast distribution group. Moreover, other data flows routed by the same multicast router may be affected by losses, so that other multicast distribution groups may experience a service quality degradation. A congestion event occurs when the bandwidth available at a transmission interface of the multicast router is exceeded. In the following, a “congestion event” or simply “congestion” will indicate that at least one transmission interface of a multicast router has not sufficient bandwidth to handle the data flows routed through that interface. A multicast router experiencing a congestion event will be indicated also as “congested router” and the related interface as “congested transmission interface”.
US 2010/0142524, in the name of the Applicant, discloses a method for serving an aggregate flow in a communication network node including a plurality of individual flows. The method includes identifying in the aggregate flow, based on serving resources allocated to the network node, individual flows that may be served without substantial detriment to perceived performance, and serving the identified individual flows with priority with respect to the remaining individual flows in the aggregate flow.
The method disclosed in US 2010/0142524 is even a congestion control method that may limit the effects of a congestion event at a multicast router by defining a set of pre-defined logics on the congested multicast router for preserving the quality of service of given data flows. This method provides for knowing, at the congested multicast router, which data flows are experiencing a quality of service degradation due to heavy packet losses. According to the method of US 2010/0142524, if a transmission interface of a multicast router become congested because of the establishment of a new data flow, the quality of service of pre-existing data flows is preserved to the detriment of the quality of service of the new data flow, which will experience a higher packet loss.
The method of US 2010/0142524 however does not allow to remove the congestion event at the multicast router and does not allow avoiding the waste of transmission resources both downstream (i.e. from the congested multicast router to the hosts) and upstream (i.e. from the source to the congested multicast router) the congested multicast router. In particular, downstream the congested multicast router, the waste of transmission resources is caused by the fact that the packets of a data flow routed through the congested transmission interface are either lost or, if not lost, they are anyway delivered to the hosts. These packets, however, are not sufficient to provide a service with an acceptable quality. Upstream the congested router, the transmission resources used to route this same data flow up to the congested router are actually wasted and they could be more conveniently used to deliver other data flows that are not affected by the congestion event.
WO 2009/129828 discloses a technique for traffic handling in congestion situations in a point-to-multipoint (PTM) enabled network. The disclosed technique is performed in an egress node of the network and comprises the steps of detecting marked packets, the marking being indicative of a congestion situation in a core node of the PTM enabled network; selecting, based on the detected markings, a particular PTM flow from one or more PTM flows passing the egress node for termination; and indicating the selected PTM flow in an upstream direction of the selected flow. Upon detection of a marked packet, each egress node decides that the flow is to be terminated and sends a PIM prune message upstream in the direction of the congested node.